# 核心思路: 将一维的序列结构转换为二维的键值对结构
class Solution:
    def twoSum(self, nums, target):
        hashmap = {}  # 构建一个字典
        for i, num in enumerate(nums):  # 将列表转换为一个字典并遍历
            if hashmap.get(target - num) is not None:  # 如果能够从字典中找到目标值num1
                return [hashmap.get(target - num), i]  # 就返回num1的索引和num2的索引
            # 这句不能放在if语句之前，解决list中有重复值或target-num=num的情况
            # 找不到就将当前遍历的值的索引存储到字典中
            # 这样字典会越来越大,直到遍历完毕整个数组
            hashmap[num] = i


nums = [2, 7, 11, 15]
target = 9

solution = Solution()
print(solution.twoSum(nums, target))
